#pragma once

/**
   WIFI相关参数
*/
#define wifiName "helloworld"   // WIFI名称 neededit
#define wifiPassword "12345678" // WIFI密码 neededit

/**
   TCP相关参数
*/
#define Host "cn-cd-dx-5.natfrp.cloud" // Tcp 服务器的ip地址 neededit
#define Port 12312                     // Tcp 服务器的端口 neededit

/**
 *   软串口通信 RX1是mega的rx1 TX1是mega的tx1
 *   此D3是esp虚拟出来的rx
 *   此D4是esp虚拟出来的tx
 *   esp8266				mega
 *   D3->gpio 0			    TX1
 *   D4->gpio 2			    RX1
 */
#define RX 0 // megaTX1 -> D3
#define TX 2 // megaRX1 -> D4

/**
 * OLED显示屏	esp8266
 *   GND			GND
 *   Vcc			5v
 *   D0(SCK)		D1 -> gpio 5
 *   D1(SDA)		D2 -> gpio 4
 *   RES			D5 -> gpio 14
 *   DC			    D6 -> gpio 12
 *   CS			    D7 -> gpio 13
 */

#define oled_D0 5   // esp_D1
#define oled_D1 4   // esp_D2
#define oled_RES 14 // esp_D5
#define oled_DC 12  // esp_D6
#define oled_CS 13  // esp_D7

/**
   阿里云物联网平台相关参数{ "ProductKey": "hxeo8TP7A0d", "DeviceName": "water_quality_monitoring", "DeviceSecret": "bf92598f056c28e62f22d99299b210f2" }
*/
#define productKey "hxeo8TP7A0d"                        // 产品密钥 ProductKey neededit
#define deviceName "water_quality_monitoring"           // 设备名称 DeviceName neededit
#define deviceSecret "bf92598f056c28e62f22d99299b210f2" // 设备密钥 DeviceSecret neededit

// 上报
#define FLOAT_Temperature_ID "Temperature" // 温度标识符[-100,100] -100-100 neededit
#define FLOAT_Humidity_ID "Humidity"       // 湿度标识符[-100,100] 0-100 neededit
#define FLOAT_Turbidity_ID "Turbidity"     // 浑浊度标识符[-1000,1000] 300-2000 neededit
#define FLOAT_PH_ID "PH"                   // PH值标识符 [1-14]  1-14 neededit
#define FLOAT_Hardness_ID "Hardness"       //硬度 [0,1000]   150-500 neededit
#define FLOAT_Sulfate_ID "Sulfate"         //硫酸盐 [0,1000]  300-500 neededit
// 下发
#define PH_MAX_ID "PH_MAX" // PH 最大值
#define PH_MIN_ID "PH_MIN" // PH 最小值
#define TU_MAX_ID "TU_MAX" //浊度最大值

/**
   串口调试打印相关参数
*/
#define debugState true          // 串口调试打印状态，true--开启调试打印，false--关闭调试打印
#define debugSerial Serial       // 调试打印的串口
#define debugSerialBuadrate 9600 // 调试打印的串口波特率

/**
   MQTT相关参数
*/
#define mqttHeartbeatTime 60       // 心跳间隔时间，默认为60s，单位为：秒
#define mqttPacketSize 1024        // MQTT数据包的大小设置最大为1024字节
#define ckeckMqttConnectTime 10000 // 检查MQTT连接的间隔时间，默认为10秒

/**
 * MQTT的连接状态 枚举类型
 */
typedef enum
{
    MqttDisconnected = 0, // MQTT已断开连接
    MqttConnecting,       // MQTT连接中
    MqttConnected         // MQTT已连接
} MqttConnectState;